//package leetcode.string;
//
//import java.util.ArrayList;
//import java.util.List;
//import java.util.Map;
//
///**
// * 17. 电话号码的字母组合
// */
//public class LetterCombinations {
//
//    public static void main(String[] args) {
//        LetterCombinations letter = new LetterCombinations();
//        List<String> list = letter.letterCombinations("23");
//        System.out.println(list);
//    }
//
//
//    Map<Character, String> map = Map.of(
//            '2', "abc", '3', "def", '4', "ghi", '5', "jkl",
//            '6', "mno", '7', "pqrs", '8', "tuv", '9', "wxyz"
//    );
//    List<String> resList = new ArrayList<>();
//
//
//    /**
//     * 使用递归实现
//     * TODO 考虑使用StringBuilder进行优化
//     *
//     * @param digits
//     * @return
//     */
//    public List<String> letterCombinations(String digits) {
//        if (digits.equals("")) return resList;
//        letterCombine(digits, 0, "");
//        return resList;
//    }
//
//    public void letterCombine(String digits, int index, String letterStr) {
//        if (digits.length() == index) {
//            resList.add(letterStr);
//            return;
//        }
//        char c = digits.charAt(index);
//        String letters = map.get(c);
//        for (int i = 0; i < letters.length(); i++) {
//            letterCombine(digits, index + 1, letterStr + letters.charAt(i));
//        }
//    }
//
//
//}
